﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DTO;
using System.Data.Linq;

namespace DAL
{
    public class DaXuatXu : dBConnect
    {
        #region "Get all infomation in table mp_XuatXu............."
        public static List<XuatXuDto> GetAllXuatXu()
        {
            List<XuatXuDto> xuatXu = new List<XuatXuDto>();
            var result = from k in db.mp_XuatXus
                         select new XuatXuDto(k.ID_XuatXu, k.TenXuatXu)
                         {
                             IDXuatXu = k.ID_XuatXu,
                             TenXuatXu = k.TenXuatXu
                         };
            xuatXu = result.ToList<XuatXuDto>();
            return xuatXu;
        }
        #endregion

        #region "Get one XuatXu in table mp_XuatXu............."
        public static List<XuatXuDto> GetOneXuatXuByID(XuatXuDto xuatXu)
        {
            //List<NhanHieuDto> nhanHieu = new List<NhanHieuDto>();
            var result = from k in db.mp_XuatXus
                         where (k.ID_XuatXu == xuatXu.IDXuatXu)
                         select new XuatXuDto(k.ID_XuatXu, k.TenXuatXu)
                         {
                             IDXuatXu = k.ID_XuatXu,
                             TenXuatXu = k.TenXuatXu
                         };
            return result.ToList<XuatXuDto>();
        }
        #endregion

        #region "Insert, Update for XuatXu.............."
        public static string mp_XuatXu_InsertUp(XuatXuDto xuatXu)
        {
            mp_XuatXu o;
            int IdpXuatXu = xuatXu.IDXuatXu;
            if (IdpXuatXu < 1)
            {
                o = new mp_XuatXu();
            }
            else
            {
                o = db.mp_XuatXus.Where(j => j.ID_XuatXu == xuatXu.IDXuatXu).SingleOrDefault();
            }
            if (!string.IsNullOrEmpty(xuatXu.IDXuatXu.ToString()))
                o.ID_XuatXu = xuatXu.IDXuatXu;
            if (!string.IsNullOrEmpty(xuatXu.TenXuatXu))
                o.TenXuatXu = xuatXu.TenXuatXu;

            if (IdpXuatXu < 1)
            {
                db.mp_XuatXus.InsertOnSubmit(o);
            }
            db.SubmitChanges();
            return o.ID_XuatXu.ToString();
        }
        #endregion

        #region "Delete one XuatXu..............."
        public static void mp_XuatXu_Del(XuatXuDto xuatXu, bool isPermanent)
        {
            var o = db.mp_XuatXus.Where(j => j.ID_XuatXu == xuatXu.IDXuatXu).SingleOrDefault();
            if (o != null)
            {
                if (isPermanent)
                    db.mp_XuatXus.DeleteOnSubmit(o);
                db.SubmitChanges();
            }
        }
        #endregion
    }
}
